package com.mysoft.gfyx.common.rpc.opptyservice;

import com.mysoft.gfyx.common.rpc.opptyservice.dto.*;
import feign.Headers;
import feign.Param;
import feign.RequestLine;

public interface OpptyServiceClientService {
    @RequestLine("GET /healthz")
    @Headers("Content-Type: application/json")
    void healthz();

    // 好客户得分
    @RequestLine("POST /v1/customer/get-customer-info")
    @Headers("Content-Type: application/json")
    getCustomerInfoResponseDto getCustomerInfo(getCustomerInfoRequestDto dto);

    //联系人列表
    @RequestLine("POST /v1/contact/list")
    @Headers("Content-Type: application/json")
    ContactListResponseDto getContactList(ContactListRequestDto dto);

    //联系人详情
    @RequestLine("POST /v1/contact/detail")
    @Headers("Content-Type: application/json")
    ContactDetailResponseDto contactDetail(ContactDetailRequestDto dto);

    //获取手机号
    @RequestLine("POST /v1/contact/get-mobile")
    @Headers("Content-Type: application/json")
    ContactGetMobileResponseDto getMobile(ContactGetMobileRequestDto dto);

    //联系人合作案例列表
    @RequestLine("POST /v1/contact/cooperation-list")
    @Headers("Content-Type: application/json")
    ContactCooperationListResponseDto cooperationList(ContactCooperationListRequestDto dto);

    //获取商机数据状态
    @RequestLine("POST /v1/common/get-oppty-status")
    @Headers("Content-Type: application/json")
    GetOpptyStatusResponseDto getOpptyStatus(GetOpptyStatusRequestDto dto);

    //获取商机数据状态，批量
    @RequestLine("POST /v1/common/get-oppty-status-batch")
    @Headers("Content-Type: application/json")
    GetOpptyStatusBatchResponseDto getOpptyStatusBatch(GetOpptyStatusBatchRequestDto dto);

    //更新商机数据状态
    @RequestLine("POST /v1/common/update-oppty-status")
    @Headers("Content-Type: application/json")
    UpdateOpptyStatusResponseDto updateOpptyStatus(UpdateOpptyStatusRequestDto dto);

    @RequestLine("POST /v1/clue/change-responsible-person")
    @Headers("Content-Type: application/json")
    ChangeResponsiblePersonResponseDto changeResponsiblePerson(ChangeResponsiblePersonRequestDto dto);

    @RequestLine("GET /v1/clue/bu-and-user")
    @Headers("Content-Type: application/json")
    GetBuAndUserResponseDto getBuAndUser();

    @RequestLine("GET /v1/clue/get-clue-responsible-person?clue_guid={clue_guid}")
    @Headers("Content-Type: application/json")
    GetClueResponsiblePersonResponseDto getClueResponsiblePerson(@Param("clue_guid") String clue_guid);

    @RequestLine("POST /v1/common/sync-profit")
    @Headers("Content-Type: application/json")
    SyncProfitResponseDto syncProfit(SyncProfitRequestDto dto);

    //rpa联系人
    @RequestLine("POST /v1/contact/rpa-contact")
    @Headers("Content-Type: application/json")
    RpaContactResponseDto rpaContact(RpaContactRequestDto dto);

    //rpa联系人手机号
    @RequestLine("POST /v1/contact/rpa-contact-mobile")
    @Headers("Content-Type: application/json")
    RpaContactMobileResponseDto rpaContactMobile(RpaContactMobileRequestDto dto);

    // 同步区域权限设置
    @RequestLine("POST /v1/base/sync_area_permission")
    @Headers("Content-Type: application/json")
    Object syncOrgAreaPermission(BaseOrgAreaRequestDto dto);
}
